package com.greateamd.timetableasy.client.mvc.view;

import com.greateamd.timetableasy.client.domain.EventType;
import com.greateamd.timetableasy.client.mvc.controller.Controller;
import com.greateamd.timetableasy.client.mvc.event.OnContextChangeEvent;
import com.greateamd.timetableasy.client.mvc.model.Model;
import com.greateamd.timetableasy.client.mvc.model.PlanningModel;

public interface IMainView <M extends Model,C extends Controller> extends OnContextChangeEvent,View<M,C> {
	void setHomePage(M model);
	void setAddUserPage(M model);
	void setAddCampusPage(M model);
	void setAddCoursePage(M model);
	void setAddPromotionPage(M model);
	void setAddCursusPage(M model);
	void setAddEventPage(M model,EventType type);
	void setAddUniversityPage(M model);
	
	void setEditUserPage(M model);
	void setEditUniversityPage(M model);

	<T extends PlanningModel> void setUserPlanningPage(T model);
	<T extends PlanningModel> void setTeacherPlanningPage(T model);
	<T extends PlanningModel> void setPromotionPlanningPage(T model);
	<T extends PlanningModel> void setStudyPeriodPlanningPage(T model);
	<T extends PlanningModel> void setCampusPlanningPage(T model);
	<T extends PlanningModel> void setUniversityPlanningPage(T model);
}
